import {BibtexParser} from "bibtex-js-parser";
// 读取bib文件
import fs from 'fs';
import {
    baseInfo,
    checkChinese,
    checkCite,
    checkDuplicate,
    checkTitleDuplicate,
    countJournal,
    countYear,
    valid
} from "./utils.js";


// 指定bib文件的路径,从bibPath.txt中读取路径
const bibFilePath = fs.readFileSync('bibPath.txt', 'utf-8');
// 指定tex的路径
const texFilePath = fs.readFileSync('texPath.txt', 'utf-8');

// 检查文件的存在性
if (!fs.existsSync(bibFilePath)) {
    console.log('bib文件不存在');
    // return;
}
if (!fs.existsSync(texFilePath)) {
    console.log('tex文件不存在');
    // return;
}

let bibInput =
    fs.readFileSync(bibFilePath, 'utf-8')

let texInput = fs.readFileSync(texFilePath, 'utf-8')

// 去除input里面的非法的字符
// \& 换成 & 符号
// input = input.replace(/\\&/g, '&');
// 把 month = feb 这种日期的变成 month = {feb}
bibInput = bibInput.replace(/month = (\w+)/g, 'month = {$1}');
// // 去掉 copyright 的那一行字段
// input = input.replace(/copyright = {.*},/g, '');
// // 去掉类似 author = {{Mart{\'i}n-Gonzalo}, Juan-Andr{\'e}s and {Pulido-Valdeolivas}}, 中的这些代表点的字母
// input = input.replace(/\\\'/g, '');
// // 去掉 \~
// input = input.replace(/\\~/g, '');
// 去掉 \
bibInput = bibInput.replace(/\\/g, '');


const bibJSON = BibtexParser.parseToJSON(bibInput);
// console.log(bibJSON);


// 基础信息检查
baseInfo(bibJSON);

// 检查引用情况
valid(bibJSON);

// 检查是否有重复的内容
checkCite(bibJSON, texInput);

// 检查是否有重复的内容
checkDuplicate(bibJSON)

// 统计每个期刊的引用次数
countJournal(bibJSON, texInput)

// 检查是否有标题重复的情况
checkTitleDuplicate(bibJSON);

// 统计每个期刊的引用次数,并且计算百分比
countYear(bibJSON);

// 检查是否有中文
checkChinese(texInput);
